//
// Created by HP on 2022/1/3.
//

#include "GLFW/glfw3.h"
#include "glm/glm.hpp"

#include "first_app.h"

#include "cstdlib"
#include "iostream"
#include "stdexcept"

/*
 *                                                 Graphics Pipeline
 *  Vertex/Index
 *     Buffer         -------------        ------------        -----------------        -------------        ------------
 *    (x1, y1)        |   Input   |        |  Vertex  |        | Rasterization |        | Fragment  |        |  Color   |
 *    (x2, y2)  ----> | Assembler |  ----> |  Shader  |  ----> |               |  ----> |  Shader   |  ----> | Blending |
 *    (x3, y3)        -------------        ------------        -----------------        -------------        ------------
 *       ...                                   (*)                                           (*)
 *
 * Shader language: GLSL
 */

int main() {
    lve::FirstApp app{};
    try {
        app.run();
    } catch (const std::exception &e) {
        std::cerr << e.what() << '\n';
        return EXIT_FAILURE;
    }

    return EXIT_SUCCESS;
}